package com.example.Mapper;

import com.example.entity.Module;
import com.example.entity.Users;
import com.example.entity.vo.MoudleVo;
import io.lettuce.core.dynamic.annotation.Param;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface MouduleMapper {

    List<Module> selectAll(@Param("userId")Integer userId);

    List<Module> selectAllByPage(MoudleVo moudleVo);

    @Insert("insert into module(parentId, moduleLevel, systemNo, isLeaf, fullIndex, moduleIcon, moduleOrder, moduleName, moduleNotes, moduleUrl, createUser, updateUser, createTime, updateTime) " +
            "values(#{parentId}, #{moduleLevel}, #{systemNo}, #{isLeaf}, #{fullIndex}, #{moduleIcon}, #{moduleOrder}, #{moduleName}, #{moduleNotes}, #{moduleUrl}, #{createUser}, #{updateUser}, now(), null)")
    int insert(Module module);

    @Update("update module set parentId=#{parentId}, moduleLevel=#{moduleLevel}, systemNo=#{systemNo}, isLeaf=#{isLeaf}, fullIndex=#{fullIndex}, moduleIcon=#{moduleIcon}, moduleOrder=#{moduleOrder}, moduleName=#{moduleName}, moduleNotes=#{moduleNotes}, moduleUrl=#{moduleUrl}, updateUser=#{updateUser}, updateTime=now() where moduleId=#{moduleId}")
    int update(Module module);

    @Delete("delete from module where moduleId=#{moduleId}")
    int deletById(Integer moduleId);
}
